An asymmetric bus protocol between two interconnected devices defines a relationship where a role is assigned to one device and a different role is assigned to the other device. Some examples of these role relationships include host vs. function, power provider vs. power consumer, master vs. slave, server vs. client, source vs. sink, upstream vs. downstream, etc. In cases where the two interconnected devices support both roles (i.e., the devices are dual-role devices), the role that each device should assume may not be obvious or even deterministic. In some cases, an incorrect assignment of roles can result in limited functionality or loss of functionality between the two devices. This problem becomes more apparent in the cases where the connectors and cables being used to connect two devices are symmetric. For example, the new USB Type C specification defines such symmetric cables and connectors.